package com.ruoyi.common.core.domain.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import lombok.Data;

/**
 * 用户信息表
 * 
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2021-09-20 20:19:43
 */
@Data
@TableName("sys_user")
public class SysUser implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 用户ID
	 */
	@TableId
	private Long userId;
	/**
	 * 部门ID
	 */
	private Long deptId;
	/**
	 * 登录账号
	 */
	private String loginName;
	/**
	 * 用户昵称
	 */
	private String userName;
	/**
	 * 用户类型（00系统用户 01注册用户）
	 */
	private String userType;
	/**
	 * 用户邮箱
	 */
	private String email;
	/**
	 * 手机号码
	 */
	private String phonenumber;
	/**
	 * 用户性别（0男 1女 2未知）
	 */
	private String sex;
	/**
	 * 头像路径
	 */
	private String avatar;
	/**
	 * 密码
	 */
	private String password;
	/**
	 * 盐加密
	 */
	private String salt;
	/**
	 * 帐号状态（0正常 1停用）
	 */
	private String status;
	/**
	 * 删除标志（0代表存在 2代表删除）
	 */
	private String delFlag;
	/**
	 * 最后登录IP
	 */
	private String loginIp;
	/**
	 * 最后登录时间
	 */
	private Date loginDate;
	/**
	 * 密码最后更新时间
	 */
	private Date pwdUpdateDate;
	/**
	 * 创建者
	 */
	private String createBy;
	/**
	 * 创建时间
	 */
	private Date createTime;
	/**
	 * 更新者
	 */
	private String updateBy;
	/**
	 * 更新时间
	 */
	private Date updateTime;
	/**
	 * 备注
	 */
	private String remark;

	/** 角色对象 */
	@TableField(exist = false)
	private List<SysRole> roles;

	/** 角色组 */
	@TableField(exist = false)
	private Long[] roleIds;

	/** 岗位组 */
	@TableField(exist = false)
	private Long[] postIds;

	public boolean isAdmin()
	{
		return isAdmin(this.userId);
	}

	public static boolean isAdmin(Long userId)
	{
		return userId != null && 1L == userId;
	}


}
